﻿

namespace Jim.SHR;

[Sdk("transmitPunchCardRecord", "考勤记录")]
public class SHRTransmitPunchCardRecordRequest : ISdkRequest<SHRTransmitPunchCardRecordResponse>
{
    [Description("考勤记录")]
    public List<SHRPunchCard> Records { get; set; }
}

public class SHRTransmitPunchCardRecordResponse : SdkResponse<SHRTransmitPunchCardRecord> { }

/// <summary>
/// records 中传递的数据条，如果其中有一，多个字段为空或者时间字段的格式不正确，当条数据就将抛弃
/// 最终打卡日期 = 打卡日期 + 打卡时间点
/// 建议打卡记录分批调用上传，每次上传的打卡条数不多于 50 条。
/// </summary>
public class SHRTransmitPunchCardRecord
{
    /// <summary>
    /// 接受成功的数据条数
    /// </summary>
    /// <value>成功条数</value>
    public int SuccessCtn { get; set; }
    /// <summary>
    /// 同步数据总条数
    /// </summary>
    /// <value>数据总条数</value>
    public int RecordCtn { get; set; }

    /// <summary>
    /// 传入数据格式出错的数据
    /// </summary>
    /// <value>object</value>
    public List<SHRPunchCard> NotExistRecords { get; set; }

    /// <summary>
    /// 系统中已存在的打卡记录数据
    /// </summary>
    /// <value>object</value>
    public List<SHRPunchCard> DuplicateRecords { get; set; }

    /// <summary>
    /// 传入数据格式出错的数据
    /// </summary>
    /// <value>object</value>
    public List<SHRPunchCard> FormatErrorRecords { get; set; }
}


public class SHRPunchCard
{
    /// <summary>考勤机编号</summary>
    /// <value>int</value>
    public string EquNo { get; set; }

    /// <summary>
    /// 考勤编号
    /// </summary>
    /// <value>string</value>
    public string CardId { get; set; }

    /// <summary>
    /// 打卡日期：时间格式：yyyy-MM-dd
    /// </summary>
    /// <value>string</value>
    public string RecDate { get; set; }

    /// <summary>
    /// 打卡时间点:  时间格式：HH:mm:ss
    /// </summary>
    /// <value>string</value>
    public string RecTime { get; set; }
}
